package com.etl.service;


import com.etl.entity.EtlTaskIncrement;
import com.etl.model.rev.EtlTaskListRev;
import com.github.pagehelper.PageInfo;

import javax.websocket.Session;


/**
 * Created by Administrator on 2019/10/21.
 */

public interface IEtlTaskIncrementService {

    /**
     * 【接口】获取某系统下的所有任务
     *
     * @param etlTaskListRev
     * @return
     */
    PageInfo<EtlTaskIncrement> getEtlIncrementTaskList(EtlTaskListRev etlTaskListRev);

    /**
     * 【接口】往任务表中添加一个任务
     */
    void addEtlIncrementTask(EtlTaskIncrement etlTaskIncrement);

    /**
     * 【接口】更新任务
     * @param etlTaskIncrement
     */
    void updateEtlIncrementTask(EtlTaskIncrement etlTaskIncrement);


    /**
     * 增量同步
     * @param kid
     * @param kettleHome
     * @param kettleJobName
     */
    void executeIncrementSingle(Long kid,String kettleHome,String kettleJobName);

    /**
     * 【接口】执行单个任务
     * 区分与执行整批任务
     *
     * @param kid
     */
    void socketExecuteSingle(Session session, Long kid);

    /**
     * 延时执行批次下的所有任务
     * 也就是将任务插入到定时任务表中，等待扫描器扫描并执行
     */
    void delayExecuteAll(Integer batch);


    /**
     * 【接口】执行批次下所有任务
     *
     * @param batch
     */
    void executeAll(Integer batch, String accountName);


    /**
     * 删除任务和表结构
     *
     * @param kid
     */
    void removeTaskAndTable(Long kid, Integer type);

}
